/*
 * PsApplication.h
 *
 *  Created on: 2016年4月6日
 *      Author: terry
 */

#ifndef PSAPPLICATION_H_
#define PSAPPLICATION_H_

#include "BasicType.h"
#include "TSingleton.h"
#include "SharedPtr.h"
#include "TDiscreteArray.h"
#include "PsMediaCaster.h"
#include "PsCaster.h"


typedef std::shared_ptr< av::PsMediaCaster >		PsMediaCasterPtr;

typedef comn::DiscreteArray< PsMediaCasterPtr, MAX_CASTER >		PsMediaCasterArray;


class PsApplication
{
public:
	static PsApplication& instance();

public:
	PsApplication();
	virtual ~PsApplication();

	int init();

	void quit();

	int put(PsMediaCasterPtr& caster);

	PsMediaCasterPtr get(int idx);

	PsMediaCasterPtr remove(int idx);

private:
	PsMediaCasterArray	m_casters;

};

#endif /* PSAPPLICATION_H_ */
